package com.ruoyi.system.FabricBussinessContract;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class BussinessContractDTO {

    /** 合同唯一ID，作为区块链上的主键 */
    private String contractId;

    /** 港口名称或编号，表示合同涉及的港口 */
    private String port;

    /** 货主名称或ID，表示合同另一方（客户） */
    private String owner;

    /** 合同类型，例如 LONG_TERM（长期合同）、SINGLE_VESSEL（单船合同）等 */
    private String contractType;

    /** 合同签订日期，格式建议为 yyyy-MM-dd */
    private String signDate;

    /** 合同生效日期 */
    private String effectDate;

    /** 合同终止日期（如未终止可为空） */
    private String ExpirationDate;

    /** 合同状态，如 DRAFT（草稿）、APPROVING（审批中）、EFFECTIVE（已生效）、TERMINATED（已终止） */
    private String status;

    /** 合同正文内容的摘要 */
    private String contentSummary;

    /** 合同全文的存储链接（如 OSS、IPFS、Web 服务器地址） */
    private String contentUrl;

    /** 合同全文内容的哈希值，用于校验一致性 */
    private String contentHash;

    /** 到验号，格式为“船舶代码+到港日期”，用于单船合同 */
    private String uniqueCode;

    /** 船名，单船合同适用 */
    private String shipName;

    /** 作废日期（若合同已作废） */
    private String abolishDate;

    /** 所属港口公司ID，用于关联港口业务系统 */
    private String companyId;

    /** 货物类型，如集装箱、煤炭、原油等 */
    private String cargoType;

    /** 合同总量，例如吨数或集装箱数量 */
    private Double volume;

    /** 单位，如吨（ton）、TEU（标准箱单位）等 */
    private String unit;

    /** 合同单价，用于后期结算 */
    private Double price;

    /** 币种，如 CNY、USD 等 */
    private String currency;

    /** 备注说明，可用于补充其他信息 */
    private String remarks;
}
